package com.nep.common.util;

import javafx.scene.control.Button;
import static com.nep.common.util.AlertUtil.*;

/**
 * 认证工具类，提供用户认证状态检查和会话管理功能
 */
public class AuthUtil {

    /**
     * 检查当前用户是否已登录且会话有效
     * @return 如果用户已登录且会话未超时返回true，否则返回false
     */
    public static boolean isLoggedIn() {
        return ApplicationContextUtil.getInstance().isSessionValid();
    }

    /**
     * 检查登录状态，如果未登录则显示错误提示并跳转登录页面
     * @param triggerButton 触发操作的按钮控件，用于场景切换
     */
    public static void checkLoginStatus(Button triggerButton) {
        if (!isLoggedIn()) {
            // 显示登录过期提示
            showError("登录过期", "请重新登录以继续操作");
            // 切换到登录页面
            SceneSwitcherUtil.switchScene(triggerButton, "/com/nep/NEPS/view/SupervisorLoginView.fxml");
        }
    }

    /**
     * 执行用户退出登录操作
     * @param triggerButton 触发退出操作的按钮控件，用于场景切换
     */
    public static void logout(Button triggerButton) {
        // 清除当前用户会话信息
        ApplicationContextUtil.getInstance().clearUser();
        // 切换到登录页面
        SceneSwitcherUtil.switchScene(triggerButton, "/com/nep/NEPS/view/SupervisorLoginView.fxml");
    }
}